package com.changpei.search.pojo;

import com.fasterxml.jackson.annotation.JsonIgnore;
import lombok.Data;
import org.springframework.data.annotation.Id;
import org.springframework.data.elasticsearch.annotations.Document;
import org.springframework.data.elasticsearch.annotations.Field;
import org.springframework.data.elasticsearch.annotations.FieldType;

import java.io.Serializable;
import java.util.Date;

/**
 *
 * <p>Title : UserIndex</p>
 * <p>Description : UserIndex构建</p>
 * @author weibiao
 */
@Document(indexName = "user", type = "user")
@Data
public class UserIndex implements Serializable {

    /** serialVersionUID*/
    private static final long serialVersionUID = -1L;

    /**
     * 主键
     */
    @Id
    private Long id;

    /**
     * 用户昵称
     * FieldType.Text               : 支持分词
     * index = true                 : 添加数据的时候是否分词
     * analyzer = "ik_smart"        : 创建索引的分词器
     * store = false                : 是否存储
     * searchAnalyzer = "ik_smart"  : 搜索时候使用的分词器
     */
    @Field(type = FieldType.Text, analyzer = "ik_max_word")
    private String nickName;

    /**
     * 微信用户唯一标识
     */
    @JsonIgnore
    private String openid;

    /**
     * 头像
     */
    private String avatarUrl;

    /**
     * 性别
     */
    private Integer gender;

    /**
     * 粉丝数
     */
    private Long fansNum;

    /**
     * 关注数
     */
    private Long followedNum;

    /**
     * 获赞数
     */
    private Long wonLikedNum;

    /**
     * 简介
     */
    private String description;

    /**
     * 手机号
     */
    @JsonIgnore
    private String mobile;

    /**
     * 密码
     */
    @JsonIgnore
    private String passWord;

    /**
     * 状态
     */
    private Integer status;

    /**
     * 用户背景图
     */
    private String coveredImg;

    /**
     * 城市
     */
    private String city;

    /**
     * 省份
     */
    private String province;

    /**
     * 国籍
     */
    private String country;

    /**
     * 创建时间
     */
    @JsonIgnore
    private Date createTime;

    /**
     * 修改时间
     */
    @JsonIgnore
    private Date updateTime;


}
